Liskov's Substitution Principle | Solid Design Principles